package cenario;

import java.util.ArrayList;

import agentes.*;

public class Cenario {

    private ArrayList<Zumbi> zumbis;
    private ArrayList<Pessoa> pessoas;
    private ArrayList<Exterminador> exterminadores;
    private static Object[][] cenario;
    public static int MAXROW;
    public static int MAXCOLUMN;

    public Cenario(int row, int column) {
    	this.MAXROW = row;
    	this.MAXCOLUMN = column;
        cenario = new Object[row][column];
        
        zumbis = new ArrayList<Zumbi>();
        pessoas = new ArrayList<Pessoa>();
        exterminadores = new ArrayList<Exterminador>();
    }
    
    public static Agente getAgente(int column, int row) {
		return (Agente) cenario[column][row];
	}
    
    public static void setAgente(Agente agente, int column, int row) {
		cenario[column][row] = agente;
	}

	public Agente adicionarZumbi() {
        int column = (int) Math.floor((Math.random() * MAXCOLUMN));
        int row = (int) Math.floor((Math.random() * MAXROW));
        Zumbi zumbi = new Zumbi(column, row);

        if (cenario[column][row] != null) {
            adicionarZumbi();
        } else {
            zumbis.add(zumbi);
            cenario[column][row] = zumbi;
        }

        return zumbi;
    }

    public void adicionarExterminador() {
        int column = (int) Math.floor((Math.random() * MAXCOLUMN));
        int row = (int) Math.floor((Math.random() * MAXROW));
        Exterminador exterminador = new Exterminador(column, row);

        if (cenario[column][row] != null) {
            adicionarExterminador();
        } else {
            exterminadores.add(exterminador);
            cenario[row][column] = exterminador;
        }
    }

    public void adicionarPessoa() {
        int column = (int) Math.floor((Math.random() * MAXCOLUMN));
        int row = (int) Math.floor((Math.random() * MAXROW));
        Pessoa pessoa = new Pessoa(column, row);

        if (cenario[column][row] != null) {
            adicionarPessoa();
        } else {
            pessoas.add(pessoa);
            cenario[column][row] = pessoa;
        }
    }

	public ArrayList<Zumbi> getZumbis() {
		return zumbis;
	}

	public ArrayList<Pessoa> getPessoas() {
		return pessoas;
	}

	public ArrayList<Exterminador> getExterminadores() {
		return exterminadores;
	}
}
